package com.example.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.entity.Post;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.vo.PostVo;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 子非鱼
 * @since 2020-07-20
 */
public interface PostService extends IService<Post> {

    /**
     *
     * @param page 分页信息
     * @param categoryId 分类id
     * @param userId 用户id
     * @param level 置顶等级
     * @param recommend 是否精华
     * @param order 排序
     * @return
     */
    IPage paging(Page page, Long categoryId, Long userId, Integer level, Boolean recommend, String order);

    PostVo selectOnePost(QueryWrapper<Post> wrapper);

    void initWeekRank();

    /**
     * 本周热议评论数自增
     * @param postId 文章id
     * @param isIncr 是否自增，true: +1, false: -1
     */
    void incrCommentCountAndUnionForWeekRank(long postId, boolean isIncr);
}
